@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uFMSORG = $700 FMSZPG = $43 IOCBORG = $340 LMASK = 3 DCBORG = $300 DHADR = $E453 EOL = $9B DEVTAB = $31A ZICB = $20 LMADR = $2T}E7 DUPINIT = $1540 STAK = $102 OSBTM = $DF DSKTIM = $246 TIMOUT = 15 ORG IOCBORG IOCB ICHID: ORG *+1 ICDNO: ORG *+1 ICCOM: OU}RG *+1 ICSTA: ORG *+1 ICBAL: ORG *+1 ICBAH: ORG *+1 ICPUT: ORG *+2 ICBLL: ORG *+1 ICBLH: ORG *+1 ICAUX1: ORG *+1 ICAUX2: ORG V}*+1 ICAUX3: ORG *+1 ICAUX4: ORG *+1 ICAUX5: ORG *+1 ICAUX6: ORG *+1 ICLEN = *-IOCB ORG *+ICLEN*7 ICOIN = $01 ICOOUT = $02 ICW}IO = $03 ICGBR = $04 ICGRT = $05 ICGBC = $06 ICGTC = $07 ICPBR = $08 ICPTR = $09 ICPBC = $0A ICPTC = $0B ICCLOSE = $0C ICSTATX} = $0D ICDDC = $0E ICMAX = $0E ICFREE = $0F ICSOK = $01 ICSTR = $02 ICSEOF = $03 ICSBRK = $80 ICSDNR = $81 ICSNED = $82 ICSDEY}R = $83 ICSIVC = $84 ICSNOP = $85 ICSIVN = $86 ICSWPC = $87 ICDNOZ = ICDNO-IOCB+ZICB ICBLLZ = ICBLL-IOCB+ZICB ICBLHZ = ICBLH-Z}IOCB+ZICB ICBALZ = ICBAL-IOCB+ZICB ICBAHZ = ICBAH-IOCB+ZICB ICCOMZ = ICCOM-IOCB+ZICB ICPUTZ = ICPUT-IOCB+ZICB ORG DCBORG DCB[} DCBSBI: ORG *+1 DCBDRV: ORG *+1 DCBCMD: ORG *+1 DCBSTA: ORG *+1 DCBBUF: ORG *+2 DCBTO: ORG *+2 DCBCNT: ORG *+2 DCBSEC: ORG *\}+2 DCBCRS = 'R DCBCWS = 'W DCBCST = 'S DCBCFD = '! DCBSOK = $01 DCBDNR = $81 DCBCNR = $82 DCBDER = $83 DCBIVC = $84 DCBWPR = ]}$87 ORG FMSZPG ZBUFP: ORG *+2 ZDRVA: ORG *+2 ZSBA: ORG *+2 ERRNO: ORG *+1 ORG FMSORG BFLG: .BYTE 0 BRCNT: .BYTE 3 BLDADR: .^}WORD FMSORG BINTADR: .WORD DUPINIT BCONT: JMP XBCONT SABYTE: .BYTE 3 DRVBYT: .BYTE 01 SAFBFW: .BYTE 0 SASA: .BYTE 01 .BYTE $_}15 DFSFLG: .BYTE 0 DFLINK: .BYTE 0,0 BLDISP: .BYTE 125 DFLADR: .BYTE $CB .BYTE 07 XBCONT LDY DFSFLG BEQ BFAIL LDA DFLADR `} STA ZBUFP STA DCBBUF LDA DFLADR+1 STA ZBUFP+1 STA DCBBUF+1 LDA DFLINK+1 LDY DFLINK XBC1: CLC LDX DFSFLG JSR BSIO BMa}I BFAIL LDY BLDISP LDA (ZBUFP),Y AND #LMASK PHA INY ORA (ZBUFP),Y BEQ BGOOD LDA (ZBUFP),Y TAY JSR INCBA PLA JMP Xb}BC1 BFAIL: LDA #$C0 BNE XBRTN BGOOD: PLA XBRTN: ASL A TAY RTS INCBA: CLC LDA ZBUFP ADC BLDISP STA DCBBUF STA ZBUFP LDc}A ZBUFP+1 ADC #$00 STA DCBBUF+1 STA ZBUFP+1 RTS BSIO = * STA DCBSEC+1 STY DCBSEC BSIOR: LDA #DCBCRS LDY #$40 BCC DSIOd}1 LDA #DCBCWS LDY #$80 DSIO1 STA DCBCMD STY DCBSTA LDA #$31 LDY #TIMOUT DSIO2 STA DCBSBI STY DCBTO LDA #$03 STA RETe}RY LDA #$00 LDY #$80 DEX BEQ DSIO3 LDA #$01 LDY #$00 STA DCBCNT+1 DSIO3: STY DCBCNT DSIO4 JSR $E459 BPL DSIO5 DEC Rf}ETRY BMI DSIO5 LDX #$40 LDA #DCBCRS CMP DCBCMD BEQ STRTYP LDA #DCBCFD CMP DCBCMD BEQ STRTYP LDX #$80 STRTYP: STX DCBg}STA JMP DSIO4 DSIO5: LDX CURFCB LDA DCBSTA RTS DFMSDH .WORD DFMOPN-1 .WORD DFMCLS-1 .WORD DFMGET-1 .WORD DFMPUT-1 .WOh}RD DFMSTA-1 .WORD DFMDDC-1 ORG $07E0 DINIT = * LDA SASA STA ZBUFP LDA SASA+1 STA ZBUFP+1 LDA DRVBYT STA TEMP1 LDX i}#$07 DIA: STX TEMP2 ASL TEMP1 BCS DIHAVE LDA #$00 STA DRVTBL,X STA DBUFAL,X STA DBUFAH,X BEQ DIDDEC DIHAVE LDA #$00 j}STA (ZBUFP),Y INX STX DCBDRV LDA #DCBCST STA DCBCMD JSR DHADR LDY #$02 LDA $02EA AND #$20 BNE DI256 DEY DI256: TYA k} LDX TEMP2 STA DRVTBL,X LDA ZBUFP STA DBUFAL,X LDA ZBUFP+1 STA DBUFAH,X JSR DINCBP DEY BEQ DIDDEC JSR DINCBP DIDDEC:l} DEX BPL DIA LDY SABYTE LDX #$00 DINXTS: LDA #$00 DEY BPL DISETS TYA DISETS: STA SECTBL,X TYA BMI DISNI LDA ZBUFPm} STA SABUFL,X LDA ZBUFP+1 STA SABUFH,X JSR DINCBP DISNI: INX CPX #$10 BNE DINXTS LDA ZBUFP STA LMADR LDA ZBUFP+1 STn}A LMADR+1 JMP CLRFCB DINCBP: CLC LDA ZBUFP ADC #$80 STA ZBUFP LDA ZBUFP+1 ADC #$00 STA ZBUFP+1 RTS CLRFCB = * LDY #$o}7F LDA #$00 CFCBX: STA FCB,Y DEY BNE CFCBX LDY #$00 ADI1: LDA Y BEQ ADI2 CMP #'D BEQ ADI2 INY INY INY CPY #$1E BNp}E ADI1 BRK ADI2: LDA #'D STA DEVTAB,Y LDA #DFMSDH&255 STA DEVTAB+1,Y LDA #DFMSDH/256 STA DEVTAB+2,Y RTS DFMOPN: JSR SEq}TUP JSR FNDCODE LDA ICAUX1,X STA FCBOTC,X AND #OPDIR BEQ OPN1 JMP LISTDIR OPN1: JSR SFDIR PHP LDA FCBOTC,X CMP #OPINr} BEQ DFOIN CMP #OPOUT BEQ DFOOUT CMP #OPIN+OPOUT BEQ DFOUPD CMP #OPOUT+OPAPND BEQ DFOAPN JMP ERDVDC DFOIN = * PLP Bs}CS OPNER1 BCC DFOUI DFOUPD = * PLP BCS OPNER1 JSR TSTLOCK DFOUI = * JSR DFRDSU JMP GREAT OPNER1: JMP ERFNF DFOAPN = * t}PLP BCS OPNER1 LDY CDIRD LDA FILDIR+DFDFL1,Y AND #DFDNLD BEQ APOER JSR TSTLOCK JSR OPVTOC JSR GETSECTOR STA FCBSSN+1u},X LDA FCBLSN,X STA FCBSSN,X JMP DHFOX2 APOER: JMP ERAPO DFOOUT = * PLP BCS DFOX1 JSR XDEL0 LDY CDIRD JMP OPN1A DFOX1v} = * LDA DHOLES BMI OPNER2 STA CDIRS JSR RDDIR LDA DHOLED STA CDIRD LDA DHFNUM STA SFNUM JSR OPVTOC LDY CDIRD LDX w}#$0A LDA #$20 OPN1B: STA FILDIR+DFDPFN,Y INY DEX BPL OPN1B LDX CURFCB OPN1A = * JSR GETSECTOR LDY CDIRD STA FILDIR+DFx}DSSN+1,Y LDA FCBLSN,X STA FILDIR+DFDSSN,Y LDA #DFDINU+DFDOUT+DFDNLD STA FILDIR+DFDFL1,Y LDA #$00 STA FILDIR+DFDCNT+1,Y y} STA FILDIR+DFDCNT,Y LDX #$00 OPN2: LDA FNAME,X CMP #'? BEQ OPN2A STA FILDIR+DFDPFN,Y OPN2A = * INY INX CPX #$0B BCC z}OPN2 LDX CURFCB JSR WRTDIR DHFOX2 = * JSR SETFCB JSR WRTN6 OPN3: LDA #FCBFAS STA FCBFLG,X JSR TSTDOS BNE DHFOX3 JMP W{}RTDOS DHFOX3 = * JMP GREAT OPNER2: JSR ERDFULL SETFCB = * LDA #$00 STA FCBFLG,X OPNF1: LDA SFNUM ASL A ASL A STA FCBFNO|},X LDA #$00 STA FCBDLN,X STA FCBCNT,X STA FCBCNT+1,X RTS DFRDSU: JSR SETFCB LDY CDIRD LDA DFDFL1+FILDIR,Y AND #DFDNLD}} STA FCBSLT,X LDA FILD+DFDSSN,Y STA FCBLSN,X LDA FILDIR+DFDSSN+1,Y STA FCBLSN+1,X JSR RDNSO RTS DFMPUT STA SVDBYT LD~}A ICDNO,X STA ICDNO-IOCB+ZICB JSR SETUP LDY ENTSTK LDA STAK,Y CMP #OSBTM BCS FRMCIO LDA #$00 STA ICCOMZ FRMCIO: LDA F}CBOTC,X AND #OPOUT BEQ PUTER LDY FCBDLN,X TYA CMP FCBMLN,X BCC PUT1 JSR WRTNXS BCS PEOF JSR WTBUR LDY #$00 BCS PUT}1 LDA (ICBALZ),Y STA SVDBYT PUT1: INC FCBDLN,X LDA SVDBYT STA (ZSBA),Y LDA #FCBFSM ORA FCBFLG,X STA FCBFLG,X JMP GREA}T PUTER: JMP ERDVDC PEOF: JMP ERREOF WTBUR: LDA FCBFLG,X BPL NOBURST BMI TBURST RTBUR: LDA #$00 TBURST: STA BURTYP LDA ICC}OMZ AND #$02 BEQ NOBURST JSR TBLEN BCS NOBURST LDA ICBALZ STA ZSBA LDA ICBAHZ STA ZSBA+1 NXTBUR: LDA BURTYP BMI WRBU}R JSR RDNXTS BCC BBINC BCS BUREOF NOBURST SEC RTS WRBUR: LDA DRVMDL STA FCBDLN,X TAY LDA (ZSBA),Y STA SVD1 INY LDA }(ZSBA),Y STA SVD2 INY LDA (ZSBA),Y STA SVD3 JSR WRTNXS LDY DRVMDL LDA SVD1 STA (ZSBA),Y INY LDA SVD2 STA (ZSBA),Y } INY LDA SVD3 STA (ZSBA),Y BBINC: CLC LDA ZSBA ADC FCBMLN,X STA ZSBA LDA ZSBA+1 ADC #$00 STA ZSBA+1 SEC LDA ICBLLZ } SBC FCBMLN,X STA ICBLLZ LDA ICBLHZ SBC #$00 NOP STA ICBLHZ JSR TBLEN BCC NXTBUR BUREOF = * LDA ZSBA STA ICBALZ LDA} ZSBA+1 STA ICBAHZ LDY FCBBUF,X DEY JSR SSBA BURST: CLC RTS TBLEN = * LDA DRVTYP CMP #$01 BNE TBL256 LDA ICBLLZ BMI} BURST TBL256: LDA ICBLHZ BNE BURST SEC RTS DFMGET = * JSR SETUP LDA FCBOTC,X FDSCHAR AND #OPDIR BEQ GET1 JMP GDCHAR }GET1: LDA FCBDLN,X CMP FCBMLN,X BCC GET2 JSR RTBUR JSR RDNXTS BCC GET1 GEOF = * JMP ERREOF GET2: TAY LDA (ZSBA),Y STA} SVDBYT INY TYA STA FCBDLN,X EFLOOK = * LDY FCBLEN,X BNE GET3 LDY FCBLSN+1,X BNE GET3 CMP FCBMLN,X BCC GET3 LDA #$0}3 JMP RETURN GET3: JMP GREAT DFMSTA JSR SETUP JSR FNDCODE JSR SFDIR BCS SFNF JSR TSTLOCK JMP GREAT SFNF: JMP ERFNF DFM}CLS JSR SETUP LDA FCBOTC,X AND #OPOUT BEQ CLDONE ROL FCBFLG,X BCC CLUPDT JSR WRTLSEC JSR RRDIR LDA FCBCNT+1,X PHA }LDA FCBCNT,X PHA LDA FCBOTC,X AND #OPAPND BEQ CLOUT JSR DFRDSU APP1: JSR RDNXTS BCC APP1 LDA FCBSSN,X STA FCBLSN,X L}DA FCBSSN+1,X STA FCBLSN+1,X JSR WRTN2 CLOUT: LDY CDIRD CLC PLA ADC FILDIR+DFDCNT,Y STA FILDIR+DFDCNT,Y PLA ADC FILDI}R+DFDCNT+1,Y STA FILDIR+DFDCNT+1,Y LDA #DFDINU+DFDNLD STA FILDIR+DFDFL1,Y JSR WRTDIR JSR WRTVTOC CLDONE: LDA #$00 STA F}CBOTC,X JMP FGREAT CLUPDT = * ROL FCBFLG,X BCC CLDONE JSR WRCSIO JMP CLDONE RRDIR = * LDA FCBFNO,X LSR A LSR A STA S}FNUM JSR FNSHFT STA CDIRS JSR FNSHFT JSR FNSHF1 ASL A STA CDIRD JMP RDDIR FNSHFT: LDA #$00 FNSHF1: LDY #$03 FNSHF2: AS}L FCBFNO,X ROL A DEY BNE FNSHF2 RTS DFMDDC JSR SETUP LDA ICCOM,X CMP #254 BEQ XFV CMP #MAXDDC BCS DVDCER SEC SBC }#$20 BCC DVDCER ASL A TAY LDA DVDCVT,Y PHA LDA DVDCVT+1,Y PHA RTS DVDCVT .DBYTE XRENAME-1 .DBYTE XDELETE-1 .DBYTE }DVDCER-1 .DBYTE XLOCK-1 .DBYTE XUNLOCK-1 .DBYTE XPOINT-1 .DBYTE XNOTE-1 MAXDDC = $27 DVDCER: JMP ERDVDC XFV: JMP XFORMAT }XRENAME JSR FNDCODE STY TEMP2 JSR SFDIR BCC XRN1 JMP ERFNF XRN1: JSR TSTLOCK JSR TSTDOS BNE XRN1A JSR DELDOS XRN1A: L}DY TEMP2 JSR FNDCNX JSR TSTDOS BNE XRN1B LDY CDIRD LDA FILDIR+DFDSSN+1,Y PHA LDA FILDIR+DFDSSN,Y TAY PLA JSR SETDSO} XRN1B: LDX #0 LDY CDIRD XRN2: LDA FNAME,X CMP #'? BEQ XRN3 STA FILDIR+DFDPFN,Y XRN3: INY INX CPX #$0B BCC XRN2 LDX C}URFCB JSR WRTDIR JSR FNDCODE JSR CSFDIR BCC XRN1 JMP FGREAT XDELETE JSR FNDCODE JSR SFDIR BCS DFNF XDELX = * JSR XDE}L0 JSR TSTDOS BNE XDELY JSR DELDOS XDELY XDEL3: JSR WRTDIR JSR CSFDIR BCC XDELX JSR WRTVTOC JMP FGREAT XDEL0: JSR OPVT}OC XDEL1: LDY CDIRD JSR TSTLOCK LDA #DFDEDE STA FILDIR+DFDFL1,Y JSR DFRDSU JMP XDEL2A XDEL2: JSR RDNXTS BCS XDEL4 XDEL2}A = * JSR FRESECT JMP XDEL2 XDEL4 = * LDY #DVDWRQ LDA #$FF STA (ZDRVA),Y RTS DFNF: JMP ERFNF XLOCK LDA #DFDLOC STA TE}MP4 BNE XLCOM XUNLOCK LDA #0 STA TEMP4 XLCOM: JSR FNDCODE JSR SFDIR BCC XLC1 JMP ERFNF XLC1: LDY CDIRD LDA FILDIR+DFDF}L1,Y AND #$DF ORA TEMP4 STA FILDIR+DFDFL1,Y JSR WRTDIR JSR CSFDIR BCC XLC1 JMP FGREAT TSTLOCK LDY CDIRD LDA FILDIR+D}FDFL1,Y AND #DFDLOC BNE TLF RTS TLF: JMP ERFLOCK XPOINT LDA FCBFLG,X BMI PERR1 LDA ICAUX4,X CMP FCBCSN+1,X BNE XP1 L}DA ICAUX3,X CMP FCBCSN,X BEQ XP2 XP1: LDA FCBFLG,X BEQ XP1A JSR WRCSIO LDA #0 STA FCBFLG,X XP1A = * LDA ICAUX4,X STA }FCBLSN+1,X LDA ICAUX3,X STA FCBLSN,X JSR RDNSO BCS XPERR XP2: LDA ICAUX5,X CMP FCBMLN,X BCC XP3 BEQ XP3 XPERR = * JMP} ERRPDL XP3: STA FCBDLN,X JMP GREAT PERR1: JMP ERRPOT XNOTE LDA FCBDLN,X STA ICAUX5,X LDA FCBCSN,X STA ICAUX3,X LDA FCB}CSN+1,X STA ICAUX4,X JMP GREAT XFORMAT LDA ZSBA+1 STA DCBBUF+1 LDA ZSBA STA DCBBUF LDA #DCBCFD STA DCBCMD LDA #$40 }STA DCBSTA LDX DRVTYP LDA #$31 LDY DSKTIM JSR DSIO2 BPL XF0 CPY #$90 BNE XFERR TSTFMT = * LDY #0 LDA (ZSBA),Y CMP #}$FF BNE XFBAD INY LDA (ZSBA),Y CMP #$FF BEQ XFERR XFBAD: JMP ERDBAD XFERR: JMP RETURN XF0 LDA #0 TAY XF1: STA (ZDRVA),}Y INY BPL XF1 LDY #0 LDA #2 STA (ZDRVA),Y INY LDA #$C3 STA (ZDRVA),Y INY INY STA (ZDRVA),Y LDA #2 DEY STA (ZDRV}A),Y INY INY STA (ZDRVA),Y LDY #DVDSMP LDA #$FF XF2: STA (ZDRVA),Y INY CPY #DVDSMP+90 BNE XF2 LDA #$0F LDY #DVDSMP } STA (ZDRVA),Y LDY #DVDSMP+45 LDA #0 STA (ZDRVA),Y INY LDA #$7F STA (ZDRVA),Y JSR WRTVTOC LDA #0 TAY XF3: STA FILDIR},Y INY BPL XF3 LDA #7 STA CDIRS XF4: JSR WRTDIR DEC CDIRS BPL XF4 JSR DELDOS JMP FGREAT LISTDIR LDA #0 STA TEMP4} JSR SFDIR BCC LDENT1 BCS LDCNT GDCHAR BIT TEMP4 BMI LDDONE LDY TEMP4 LDA (ZSBA),Y STA SVDBYT INC TEMP4 CMP #EOL B}NE GDCRTN CPY #17 BCS LDENT LDA #$80 STA TEMP4 GDCRTN: JMP GREAT LDENT: LDA #0 STA TEMP4 JSR CSFDIR BCS LDCNT LDENT1 }JSR FDENT JMP GREAT LDCNT: JSR RDVTOC LDY #DVDNSA+1 LDA (ZDRVA),Y PHA DEY LDA (ZDRVA),Y TAY PLA JSR CVDX LDY #3 LD}X #FSCML-1 MVFSCM: LDA FSCM,X STA (ZSBA),Y INY DEX BPL MVFSCM JSR CVDY LDA #0 STA TEMP4 JMP FGREAT LDDONE JMP ERREOF} FSCM: .BYTE "SROTCES EERF " FSCML = *-FSCM FDENT LDY #0 LDA #$20 STA (ZSBA),Y LDX CDIRD LDA FILDIR+DFDFL1,X AND #DFDLO}C BEQ LD1 LDA #'* STA (ZSBA),Y LD1: INY LDA #$20 STA (ZSBA),Y INY LD2: LDA FILDIR+DFDPFN,X STA (ZSBA),Y INX INY }CPY #13 BCC LD2 LDA #$20 STA (ZSBA),Y INY STY TEMP4 LDX CDIRD LDY FILDIR+DFDCNT,X LDA FILDIR+DFDCNT+1,X CVDX LDX #10}0 JSR CVDIGIT LDX #10 JSR CVDIGIT TYA JSR STDIGIT LDY #17 CVDY: LDA #EOL STA (ZSBA),Y LDY #0 STY TEMP4 RTS CVDIGIT:} STX TEMP3 LDX #$FF CVD1: STA TEMP2 STY TEMP1 INX SEC LDA TEMP1 SBC TEMP3 TAY LDA TEMP2 SBC #0 BCS CVD1 TXA STDIGI}T ORA #$30 LDY TEMP4 STA (ZSBA),Y INC TEMP4 LDA TEMP2 LDY TEMP1 RTS FNDCODE LDA ICBAL,X STA ZBUFP LDA ICBAH,X STA Z}BUFP+1 LDY #2 FD0A: LDA (ZBUFP),Y DEY BMI FNDERR CMP #': FD0B BNE FD0A INY FNDCNX LDX #11 LDA #$20 FD0: STA FNAME,X }DEX BPL FD0 LDX #0 STX EXTSW FD1: INY LDA (ZBUFP),Y CMP #'* BNE FD3 FD2: LDA #'? JSR FDSCHAR BCC FD2 BPL FD1 BMI FD}END FD3: CMP #'. BNE FD4 BIT EXTSW BMI FDEND LDX #8 ROR EXTSW BCC FD1 FD4: CMP #'? BEQ FD6 CMP #'A BCC FD5 CMP #$5B} BCC FD6 FD5: CPX #0 BEQ FNDERR CMP #$30 BCC FDEND CMP #$3A BCS FDEND FD6: JSR FDSCHAR JMP FD1 FDEND: LDX CURFCB RTS } FNDERR: JMP ERRFN CPX #8 BCC FDSC2 BEQ FDSC1 CPX #12 BCC FDSC2 RTS FDSC1: BIT EXTSW BMI FDSC2 RTS FDSC2: STA FNAME},X INX CLC RTS SFDIR LDA #$FF STA DHOLES STA CDIRS STA SFNUM LDA #$70 STA CDIRD CSFDIR INC SFNUM CLC LDA CDIRD} ADC #DFDELN BPL SFD2 INC CDIRS LDA #8 CMP CDIRS BCC SFD1 BEQ SDRTN SFD1: JSR RDDIR LDA #0 SFD2: STA CDIRD TAY LDA }FILDIR+DFDFL1,Y BEQ SFDSH BMI SFDSH AND #DFDOUT BNE CSFDIR LDX #0 SFD3: LDA FNAME,X CMP #'? BEQ SFD4 CMP FILDIR+DFDPF}N,Y BNE CSFDIR SFD4: INX INY CPX #11 BNE SFD3 CLC BCC SDRTN SFDSH LDA DHOLES BPL SFDSH1 LDA CDIRS STA DHOLES LDA C}DIRD STA DHOLED LDA SFNUM STA DHFNUM SFDSH1: LDA FILDIR+DFDFL1,Y BMI CSFDIR SEC SDRTN: LDX CURFCB RTS WRTNXS LDA FCBFL}G,X BMI WRTN1 ASL A BPL WRU1 ASL A STA FCBFLG,X JSR WRCSIO BMI WRNERR WRU1: JMP RDNXTS WRTN1: JSR GETSECTOR WRTLSEC: L}DA FCBDLN,X WRTLS1: LDY DRVLBT STA (ZSBA),Y WRTN2: LDA FCBLSN+1,X ORA FCBFNO,X LDY DRVMDL STA (ZSBA),Y INY LDA FCBLSN,X} STA (ZSBA),Y JSR WRCSIO BPL WRTN5 WRNERR: LDA DCBSTA STA TEMP4 LDA #0 STA FCBOTC,X LDA TEMP4 JMP RETURN WRTN5 INC F}CBCNT,X BNE WRTN6 INC FCBCNT+1,X WRTN6 JSR MVLSN LDA #0 STA FCBLSN,X STA FCBLSN+1,X STA FCBDLN,X LDA DRVMDL STA FCBM}LN,X CLC RTS WRCSIO: SEC RWCSIO: LDA FCBCSN+1,X LDY FCBCSN,X JMP DSIO MVLSN: LDA FCBLSN,X STA FCBCSN,X LDA FCBLSN}+1,X STA FCBCSN+1,X RTS RDNXTS LDA FCBFLG,X BEQ RDNSO JMP WRTNXS RDNSO = * LDA FCBLSN,X ORA FCBLSN+1,X BNE RDNS1 SEC} RTS RDNS1: JSR MVLSN CLC JSR RWCSIO BMI RDIOER LDY DRVMDL LDA (ZSBA),Y AND #$FC CMP FCBFNO,X BNE RDFNMM LDA (ZS}BA),Y AND #$03 STA FCBLSN+1,X INY LDA (ZSBA),Y STA FCBLSN,X INY LDA (ZSBA),Y PHA LDA FCBSLT,Y BNE RDNS3 PLA BMI R}DNS2 LDA #125 RDNS2: AND #$7F PHA RDNS3: PLA STA FCBMLN,X LDA #0 STA FCBDLN,X CLC RTS RDIOER: JSR ERRIO RDFNMM =} * LDA ICCOM,X CMP #$21 BEQ RDDELE JSR ERFNMM RDDELE: SEC RTS RDDIR: CLC BCC DIRIO WRTDIR: SEC DIRIO: PHP LDA #FILDIR/}256 STA DCBBUF+1 LDA #FILDIR&255 STA DCBBUF CLC LDA CDIRS ADC #$69 TAY LDA #1 ADC #0 JMP DSYSIO RDVTOC LDY #DVD}WRQ LDA (ZDRVA),Y BEQ RDVGO RTS RDVGO: CLC BCC VTIO WRTVTOC WRVTOC: LDY #DVDWRQ LDA #0 STA (ZDRVA),Y SEC VTIO: PHP LD}A ZDRVA+1 STA DCBBUF+1 LDA ZDRVA STA DCBBUF LDY #$68 LDA #1 DSYSIO PLP DSYSIA LDX DRVTYP JSR BSIO BMI DSIOER RTS DS}IOER: CMP #DCBDER BEQ DEAD JMP ERRIO DEAD: JMP ERRSYS OPVTOC JSR RDVTOC JMP WRTVTOC FRESECT LDA FCBCSN,X ORA FCBCSN+1,X} BEQ FSRTS LDA #0 LDY #3 FS1: LSR FCBCSN+1,X ROR FCBCSN,X ROR A DEY BNE FS1 LDY #5 FS2: ROR A DEY BNE FS2 TAY LDA} #0 SEC FS3: ROR A DEY BPL FS3 PHA LDA FCBCSN,X ADC #DVDSMP TAY PLA ORA (ZDRVA),Y STA (ZDRVA),Y LDY #DVDNSA LD}A (ZDRVA),Y CLC ADC #1 STA (ZDRVA),Y INY LDA (ZDRVA),Y ADC #0 STA (ZDRVA),Y FSRTS = * RTS GETSECTOR LDY #DVDSMP-1 GS}1: INY CPY #90+DVDSMP BCS GSERR LDA (ZDRVA),Y BEQ GS1 STY TEMP1 PHA SEC LDY #DVDNSA LDA (ZDRVA),Y SBC #1 STA (ZDRV}A),Y INY LDA (ZDRVA),Y SBC #0 STA (ZDRVA),Y INY LDA #$FF STA (ZDRVA),Y PLA LDY #$FF GS2: INY ASL A BCC GS2 STY TE}MP2 GS3: LSR A DEY BPL GS3 LDY TEMP1 STA (ZDRVA),Y SEC LDA TEMP1 SBC #DVDSMP LDY #0 STY TEMP1 GS4: ASL A ROL TEMP1 } INY CPY #3 BCC GS4 CLC ADC TEMP2 STA FCBLSN,X LDA TEMP1 ADC #0 STA FCBLSN+1,X RTS GSERR: JMP ERRNSA SETUP: LDA #$9F} STA ERRNO STX CURFCB TSX INX INX STX ENTSTK LDX CURFCB LDY ICDNOZ STY DCBDRV DEY LDA DBUFAL,Y STA ZDRVA LDA DBU}FAH,Y STA ZDRVA+1 LDA DRVTBL,Y BEQ DERR1 STA DRVTYP TAY LDA DRVMDL,Y STA DRVMDL LDA DRVLBT,Y STA DRVLBT LDY FCBBUF,}X DEY BPL SSBA LDY #0 GSB1: LDA SECTBL,Y BEQ GSB4 GSB2: INY CPY #$10 BCC GSB1 GSB3: JMP ERRNSB GSB4: LDA DRVTYP LSR A } BCS GSB5 INY CPY #16 BCS GSB3 LDA SECTBL,Y BNE GSB2 DEY LDA #$80 STA SECTBL+1,Y GSB5: LDA #$80 STA SECTBL,Y TYA S}TA FCBBUF,X INC FCBBUF,X SSBA: LDA SABUFL,Y STA ZSBA LDA SABUFH,Y STA ZSBA+1 RTS DERR1: JMP ERRDNO FRESBUF = * LDY FCBB}UF,X BEQ FSBR DEY LDA #0 STA FCBBUF,X STA SECTBL,Y LDA DRVTYP LSR A BCS FSBR LSR A STA SECTBL+1,Y FSBR: RTS DSIO P}HA LDA ZSBA STA DCBBUF LDA ZSBA+1 STA DCBBUF+1 PLA LDX DRVTYP JSR BSIO RTS WRTDOS LDY FCBCSN,X LDA FCBCSN+1,X JSR }SETDSO JSR WD0 JMP GREAT DELDOS LDA #0 DD1 STA DFSFLG WRTSCO LDA #FMSORG/256 STA DCBBUF+1 LDA #FMSORG&255 STA DCBBUF } LDA #0 STA DCBSEC STA DCBSEC+1 WRNBS: INC DCBSEC LDX #1 SEC JSR BSIOR CLC LDA DCBBUF ADC #128 STA DCBBUF LDA DCBBU}F+1 ADC #0 STA DCBBUF+1 LDA DCBSEC CMP BRCNT BNE WRNBS RTS SETDSO: STY DFLINK STA DFLINK+1 LDA DRVTYP STA DFSFLG LD}Y DRVMDL STY BLDISP BNE DD1 WD0: LDA DFLADR STA ZBUFP LDA DFLADR+1 STA ZBUFP+1 WD1: LDY #0 WD2: LDA (ZBUFP),Y STA (ZSBA}),Y INY CPY DRVMDL BCC WD2 TYA STA FCBDLN,X JSR INCBA CMP SASA+1 BCC WD3 BNE WD4 LDA ZBUFP CMP SASA BCC WD3 BNE }WD4 WD3: JSR WRTNXS JMP WD1 WD4: RTS TSTDOS LDY #11 TDF1: LDA FNAME-1,Y CMP DFN-1,Y BNE TDFR DEY BNE TDF1 TDFR: RTS DFN}: .BYTE "DOS SYS" ERDBAD: INC ERRNO ERAPO: INC ERRNO ERRPOT: INC ERRNO ERFNF: INC ERRNO ERDFULL: INC ERRNO ERDVDC: INC ERRN}O ERFLOCK: INC ERRNO ERRPDL: INC ERRNO ERRFN: INC ERRNO ERFNMM: INC ERRNO ERRSYS: INC ERRNO ERRNSA: INC ERRNO ERRNSB: INC ERR}NO ERRDNO: INC ERRNO LDA ERRNO RETURN: LDX CURFCB STA ICSTA,X LDX ENTSTK TXS LDX CURFCB TAY LDA SVDBYT RTS ERRIO: LDA} DCBSTA BMI RETURN FGREAT: LDX CURFCB JSR FRESBUF GREAT: LDA #01 BNE RETURN ERREOF: LDA #$88 BMI RETURN DRVMDL: .BYTE 0 }.BYTE 125 .BYTE 253 DRVLBT: .BYTE 0 .BYTE 127 .BYTE 255 DRVTYP: ORG *+1 RETRY: ORG *+1 ENTSTK: ORG *+1 CURFCB: ORG *+1 DHO}LES: ORG *+1 DHOLED: ORG *+1 DHFNUM: ORG *+1 CDIRD: ORG *+1 CDIRS: ORG *+1 SFNUM: ORG *+1 SVDBYT: ORG *+1 SVD1: ORG *+1 SVD2:} ORG *+1 SVD3: ORG *+1 EXTSW TEMP1: ORG *+1 TEMP2: ORG *+1 TEMP3: ORG *+1 TEMP4: ORG *+1 BURTYP: ORG *+1 DRVTBL: ORG *+8 SECT}BL: ORG *+16 DBUFAL: ORG *+8 DBUFAH: ORG *+8 SABUFL: ORG *+16 SABUFH: ORG *+16 FNAME: ORG *+12 AFNAME: ORG *+12 MDRV: ORG *+1} Z = * ORG $1381 FCB FCBFNO: ORG *+1 FCBOTC: ORG *+1 ORG *+1 FCBSLT: ORG *+1 FCBFLG: ORG *+1 FCBMLN: ORG *+1 FCBDLN: ORG *+}1 FCBBUF: ORG *+1 FCBCSN: ORG *+2 FCBLSN: ORG *+2 FCBSSN: ORG *+2 FCBCRS FCBCNT: ORG *+2 FCBLEN = *-FCB ORG FCBLEN*7+* OPIN }= $04 OPOUT = $08 OPDIR = $02 OPAPND = $01 FCBFAS = $80 FCBFSM = $40 DFDFL1 = 0 DFDCNT = 1 DFDSSN = 3 DFDPFN = 5 DFDXFN = 13 }DFDELN = 16 DFDEUU = 0 DFDEDE = $80 DFDINU = $40 DFDOUT = $01 DFDLOC = $20 DFDNLD = $02 FILDIR: ORG *+256 DVDTCD = 0 DVDMSN =} 1 DVDNSA = 3 DVDWRQ = 5 DVDSMP = 10 ENDFMS = * END UT = $01 DFDLOC = $20 DFDNLD = $02 FILDIR: ORG *+256 DVDTCD = 0 DVDMSN =51000 FMSORG = $700 1002 FMSZPG = $43 1004 IOCBORG = $340 1006 LMASK = 3 1008 DCBORG = $300 1010 DHADR = $E453 1012 EOL = $9B }1014 DEVTAB = $31A 1016 ZICB = $20 1018 LMADR = $2E7 1020 DUPINIT = $1540 1022 STAK = $102 1024 OSBTM = $DF 1026 DSKTIM = $24 }6 1028 TIMOUT = 15 1030 *= IOCBORG 1032 IOCB 1034 ICHID *= *+1 1036 ICDNO *= *+1 1038 ICCOM *= *+1 1040 ICSTA *= *+1 1042 I }CBAL *= *+1 1044 ICBAH *= *+1 1046 ICPUT *= *+2 1048 ICBLL *= *+1 1050 ICBLH *= *+1 1052 ICAUX1 *= *+1 1054 ICAUX2 *= *+1 105 }6 ICAUX3 *= *+1 1058 ICAUX4 *= *+1 1060 ICAUX5 *= *+1 1062 ICAUX6 *= *+1 1064 ICLEN = *-IOCB 1066 *= *+ICLEN*7 1068 ICOIN = }$01 1070 ICOOUT = $02 1072 ICIO = $03 1074 ICGBR = $04 1076 ICGRT = $05 1078 ICGBC = $06 1080 ICGTC = $07 1082 ICPBR = $08 10 }84 ICPTR = $09 1086 ICPBC = $0A 1088 ICPTC = $0B 1090 ICCLOSE = $0C 1092 ICSTAT = $0D 1094 ICDDC = $0E 1096 ICMAX = $0E 1098 }ICFREE = $0F 1100 ICSOK = $01 1102 ICSTR = $02 1104 ICSEOF = $03 1106 ICSBRK = $80 1108 ICSDNR = $81 1110 ICSNED = $82 1112 I }CSDER = $83 1114 ICSIVC = $84 1116 ICSNOP = $85 1118 ICSIVN = $86 1120 ICSWPC = $87 1122 ICDNOZ = ICDNO-IOCB+ZICB 1124 ICBLLZ } = ICBLL-IOCB+ZICB 1126 ICBLHZ = ICBLH-IOCB+ZICB 1128 ICBALZ = ICBAL-IOCB+ZICB 1130 ICBAHZ = ICBAH-IOCB+ZICB 1132 ICCOMZ = IC }COM-IOCB+ZICB 1134 ICPUTZ = ICPUT-IOCB+ZICB 1136 *= DCBORG 1138 DCB 1140 DCBSBI *= *+1 1142 DCBDRV *= *+1 1144 DCBCMD *= *+ }1 1146 DCBSTA *= *+1 1148 DCBBUF *= *+2 1150 DCBTO *= *+2 1152 DCBCNT *= *+2 1154 DCBSEC *= *+2 1156 DCBCRS = 'R 1158 DCBCWS }= 'W 1160 DCBCST = 'S 1162 DCBCFD = '! 1164 DCBSOK = $01 1166 DCBDNR = $81 1168 DCBCNR = $82 1170 DCBDER = $83 1172 DCBIVC = }$84 1174 DCBWPR = $87 1176 *= FMSZPG 1178 ZBUFP *= *+2 1180 ZDRVA *= *+2 1182 ZSBA *= *+2 1184 ERRNO *= *+1 1186 *= FMSORG }1188 BFLG .BYTE 0 1190 BRCNT .BYTE 3 1192 BLDADR .WORD FMSORG 1194 BINTADR .WORD DUPINIT 1196 BCONT JMP XBCONT 1198 SABYTE .B }YTE 3 1200 DRVBYT .BYTE 01 1202 SAFBFW .BYTE 0 1204 SASA .BYTE 01 1206 .BYTE $15 1208 DFSFLG .BYTE 0 1210 DFLINK .BYTE 0,0 } 1212 BLDISP .BYTE 125 1214 DFLADR .BYTE $CB 1216 .BYTE 07 1218 XBCONT 1220 LDY DFSFLG 1222 BEQ BFAIL 1224 LDA DFLADR 1 }226 STA ZBUFP 1228 STA DCBBUF 1230 LDA DFLADR+1 1232 STA ZBUFP+1 1234 STA DCBBUF+1 1236 LDA DFLINK+1 1238 LDY DFLINK 1 }240 XBC1 CLC 1242 LDX DFSFLG 1244 JSR BSIO 1246 BMI BFAIL 1248 LDY BLDISP 1250 LDA (ZBUFP),Y 1252 AND #LMASK 1254 PHA }1256 INY 1258 ORA (ZBUFP),Y 1260 BEQ BGOOD 1262 LDA (ZBUFP),Y 1264 TAY 1266 JSR INCBA 1268 PLA 1270 JMP XBC1 1272 BFA }IL LDA #$C0 1274 BNE XBRTN 1276 BGOOD PLA 1278 XBRTN ASL A 1280 TAY 1282 RTS 1284 INCBA CLC 1286 LDA ZBUFP 1288 ADC BLDI }SP 1290 STA DCBBUF 1292 STA ZBUFP 1294 LDA ZBUFP+1 1296 ADC #$00 1298 STA DCBBUF+1 1300 STA ZBUFP+1 1302 RTS 1304 BSIO } = * 1306 STA DCBSEC+1 1308 STY DCBSEC 1310 BSIOR LDA #DCBCRS 1312 LDY #$40 1314 BCC DSIO1 1316 LDA #DCBCWS 1318 LDY #$ }80 1320 DSIO1 1322 STA DCBCMD 1324 STY DCBSTA 1326 LDA #$31 1328 LDY #TIMOUT 1330 DSIO2 1332 STA DCBSBI 1334 STY DCBTO }1336 LDA #$03 1338 STA RETRY 1340 LDA #$00 1342 LDY #$80 1344 DEX 1346 BEQ DSIO3 1348 LDA #$01 1350 LDY #$00 1352 ST }A DCBCNT+1 1354 DSIO3 STY DCBCNT 1356 DSIO4 1358 JSR $E459 1360 BPL DSIO5 1362 DEC RETRY 1364 BMI DSIO5 1366 LDX #$40 13 }68 LDA #DCBCRS 1370 CMP DCBCMD 1372 BEQ STRTYP 1374 LDA #DCBCFD 1376 CMP DCBCMD 1378 BEQ STRTYP 1380 LDX #$80 1382 STR }TYP STX DCBSTA 1384 JMP DSIO4 1386 DSIO5 LDX CURFCB 1388 LDA DCBSTA 1390 RTS 1392 DFMSDH 1394 .WORD DFMOPN-1 1396 .WORD }DFMCLS-1 1398 .WORD DFMGET-1 1400 .WORD DFMPUT-1 1402 .WORD DFMSTA-1 1404 .WORD DFMDDC-1 1406 *= $07E0 1408 DINIT = * } 1410 LDA SASA 1412 STA ZBUFP 1414 LDA SASA+1 1416 STA ZBUFP+1 1418 LDA DRVBYT 1420 STA TEMP1 1422 LDX #$07 1424 DIA S }TX TEMP2 1426 ASL TEMP1 1428 BCS DIHAVE 1430 LDA #$00 1432 STA DRVTBL,X 1434 STA DBUFAL,X 1436 STA DBUFAH,X 1438 BEQ D }IDDEC 1440 DIHAVE 1442 LDA #$00 1444 STA (ZBUFP),Y 1446 INX 1448 STX DCBDRV 1450 LDA #DCBCST 1452 STA DCBCMD 1454 JSR }DHADR 1456 LDY #$02 1458 LDA $02EA 1460 AND #$20 1462 BNE DI256 1464 DEY 1466 DI256 TYA 1468 LDX TEMP2 1470 STA DRVTBL },X 1472 LDA ZBUFP 1474 STA DBUFAL,X 1476 LDA ZBUFP+1 1478 STA DBUFAH,X 1480 JSR DINCBP 1482 DEY 1484 BEQ DIDDEC 1486 }JSR DINCBP 1488 DIDDEC DEX 1490 BPL DIA 1492 LDY SABYTE 1494 LDX #$00 1496 DINXTS LDA #$00 1498 DEY 1500 BPL DISETS 150 }2 TYA 1504 DISETS STA SECTBL,X 1506 TYA 1508 BMI DISNI 1510 LDA ZBUFP 1512 STA SABUFL,X 1514 LDA ZBUFP+1 1516 STA S }ABUFH,X 1518 JSR DINCBP 1520 DISNI INX 1522 CPX #$10 1524 BNE DINXTS 1526 LDA ZBUFP 1528 STA LMADR 1530 LDA ZBUFP+1 153 }2 STA LMADR+1 1534 JMP CLRFCB 1536 DINCBP CLC 1538 LDA ZBUFP 1540 ADC #$80 1542 STA ZBUFP 1544 LDA ZBUFP+1 1546 ADC #$ }00 1548 STA ZBUFP+1 1550 RTS 1552 CLRFCB = * 1554 LDY #$7F 1556 LDA #$00 1558 CFCBX STA FCB,Y 1560 DEY 1562 BNE CFCBX 1 }564 LDY #$00 1566 ADI1 LDA Y 1568 BEQ ADI2 1570 CMP #'D 1572 BEQ ADI2 1574 INY 1576 INY 1578 INY 1580 CPY #$1E 1582 }BNE ADI1 1584 BRK 1586 ADI2 LDA #'D 1588 STA DEVTAB,Y 1590 LDA #DFMSDH&255 1592 STA DEVTAB+1,Y 1594 LDA #DFMSDH/256 1596 } STA DEVTAB+2,Y 1598 RTS 1600 DFMOPN JSR SETUP 1602 JSR FNDCODE 1604 LDA ICAUX1,X 1606 STA FCBOTC,X 1608 AND #OPDIR 161 }0 BEQ OPN1 1612 JMP LISTDIR 1614 OPN1 JSR SFDIR 1616 PHP 1618 LDA FCBOTC,X 1620 CMP #OPIN 1622 BEQ DFOIN 1624 CMP #OPO }UT 1626 BEQ DFOOUT 1628 CMP #OPIN+OPOUT 1630 BEQ DFOUPD 1632 CMP #OPOUT+OPAPND 1634 BEQ DFOAPN 1636 JMP ERDVDC 1638 DFO }IN = * 1640 PLP 1642 BCS OPNER1 1644 BCC DFOUI 1646 DFOUPD = * 1648 PLP 1650 BCS OPNER1 1652 JSR TSTLOCK 1654 DFOUI = * } 1656 JSR DFRDSU 1658 JMP GREAT 1660 OPNER1 JMP ERFNF 1662 DFOAPN = * 1664 PLP 1666 BCS OPNER1 1668 LDY CDIRD 1670 LDA }FILDIR+DFDFL1,Y 1672 AND #DFDNLD 1674 BEQ APOER 1676 JSR TSTLOCK 1678 JSR OPVTOC 1680 JSR GETSECTOR 1682 STA FCBSSN+1,X } 1684 LDA FCBLSN,X 1686 STA FCBSSN,X 1688 JMP DHFOX2 1690 APOER JMP ERAPO 1692 DFOOUT = * 1694 PLP 1696 BCS DFOX1 1698 }JSR XDEL0 1700 LDY CDIRD 1702 JMP OPN1A 1704 DFOX1 = * 1706 LDA DHOLES 1708 BMI OPNER2 1710 STA CDIRS 1712 JSR RDDIR 17 }14 LDA DHOLED 1716 STA CDIRD 1718 LDA DHFNUM 1720 STA SFNUM 1722 JSR OPVTOC 1724 LDY CDIRD 1726 LDX #$0A 1728 LDA #$2 }0 1730 OPN1B STA FILDIR+DFDPFN,Y 1732 INY 1734 DEX 1736 BPL OPN1B 1738 LDX CURFCB 1740 OPN1A = * 1742 JSR GETSECTOR 1744 } LDY CDIRD 1746 STA FILDIR+DFDSSN+1,Y 1748 LDA FCBLSN,X 1750 STA FILDIR+DFDSSN,Y 1752 LDA #DFDINU+DFDOUT+DFDNLD 1754 ST }A FILDIR+DFDFL1,Y 1756 LDA #$00 1758 STA FILDIR+DFDCNT+1,Y 1760 STA FILDIR+DFDCNT,Y 1762 LDX #$00 1764 OPN2 LDA FNAME,X 1 !}766 CMP #'? 1768 BEQ OPN2A 1770 STA FILDIR+DFDPFN,Y 1772 OPN2A = * 1774 INY 1776 INX 1778 CPX #$0B 1780 BCC OPN2 1782 "} LDX CURFCB 1784 JSR WRTDIR 1786 DHFOX2 = * 1788 JSR SETFCB 1790 JSR WRTN6 1792 OPN3 LDA #FCBFAS 1794 STA FCBFLG,X 1796 #}JSR TSTDOS 1798 BNE DHFOX3 1800 JMP WRTDOS 1802 DHFOX3 = * 1804 JMP GREAT 1806 OPNER2 JSR ERDFULL 1808 SETFCB = * 1810 LD $}A #$00 1812 STA FCBFLG,X 1814 OPNF1 LDA SFNUM 1816 ASL A 1818 ASL A 1820 STA FCBFNO,X 1822 LDA #$00 1824 STA FCBDLN,X 1 %}826 STA FCBCNT,X 1828 STA FCBCNT+1,X 1830 RTS 1832 DFRDSU JSR SETFCB 1834 LDY CDIRD 1836 LDA DFDFL1+FILDIR,Y 1838 AND # &}DFDNLD 1840 STA FCBSLT,X 1842 LDA FILD+DFDSSN,Y 1844 STA FCBLSN,X 1846 LDA FILDIR+DFDSSN+1,Y 1848 STA FCBLSN+1,X 1850 J '}SR RDNSO 1852 RTS 1854 DFMPUT 1856 STA SVDBYT 1858 LDA ICDNO,X 1860 STA ICDNO-IOCB+ZICB 1862 JSR SETUP 1864 LDY ENTSTK (}1866 LDA STAK,Y 1868 CMP #OSBTM 1870 BCS FRMCIO 1872 LDA #$00 1874 STA ICCOMZ 1876 FRMCIO LDA FCBOTC,X 1878 AND #OPOUT )}1880 BEQ PUTER 1882 LDY FCBDLN,X 1884 TYA 1886 CMP FCBMLN,X 1888 BCC PUT1 1890 JSR WRTNXS 1892 BCS PEOF 1894 JSR WTBU *}R 1896 LDY #$00 1898 BCS PUT1 1900 LDA (ICBALZ),Y 1902 STA SVDBYT 1904 PUT1 INC FCBDLN,X 1906 LDA SVDBYT 1908 STA (ZSBA +}),Y 1910 LDA #FCBFSM 1912 ORA FCBFLG,X 1914 STA FCBFLG,X 1916 JMP GREAT 1918 PUTER JMP ERDVDC 1920 PEOF JMP ERREOF 1922 W ,}TBUR LDA FCBFLG,X 1924 BPL NOBURST 1926 BMI TBURST 1928 RTBUR LDA #$00 1930 TBURST STA BURTYP 1932 LDA ICCOMZ 1934 AND #$ -}02 1936 BEQ NOBURST 1938 JSR TBLEN 1940 BCS NOBURST 1942 LDA ICBALZ 1944 STA ZSBA 1946 LDA ICBAHZ 1948 STA ZSBA+1 1950 .} NXTBUR LDA BURTYP 1952 BMI WRBUR 1954 JSR RDNXTS 1956 BCC BBINC 1958 BCS BUREOF 1960 NOBURST SEC 1962 RTS 1964 WRBUR LD /}A DRVMDL 1966 STA FCBDLN,X 1968 TAY 1970 LDA (ZSBA),Y 1972 STA SVD1 1974 INY 1976 LDA (ZSBA),Y 1978 STA SVD2 1980 INY 0} 1982 LDA (ZSBA),Y 1984 STA SVD3 1986 JSR WRTNXS 1988 LDY DRVMDL 1990 LDA SVD1 1992 STA (ZSBA),Y 1994 INY 1996 LDA SV 1}D2 1998 STA (ZSBA),Y 2000 INY 2002 LDA SVD3 2004 STA (ZSBA),Y 2006 BBINC CLC 2008 LDA ZSBA 2010 ADC FCBMLN,X 2012 STA 2}ZSBA 2014 LDA ZSBA+1 2016 ADC #$00 2018 STA ZSBA+1 2020 SEC 2022 LDA ICBLLZ 2024 SBC FCBMLN,X 2026 STA ICBLLZ 2028 LD 3}A ICBLHZ 2030 SBC #$00 2032 NOP 2034 STA ICBLHZ 2036 JSR TBLEN 2038 BCC NXTBUR 2040 BUREOF = * 2042 LDA ZSBA 2044 STA 4}ICBALZ 2046 LDA ZSBA+1 2048 STA ICBAHZ 2050 LDY FCBBUF,X 2052 DEY 2054 JSR SSBA 2056 BURST CLC 2058 RTS 2060 TBLEN = * 5}2062 LDA DRVTYP 2064 CMP #$01 2066 BNE TBL256 2068 LDA ICBLLZ 2070 BMI BURST 2072 TBL256 LDA ICBLHZ 2074 BNE BURST 2076 6} SEC 2078 RTS 2080 DFMGET = * 2082 JSR SETUP 2084 LDA FCBOTC,X 2086 FDSCHAR 2088 AND #OPDIR 2090 BEQ GET1 2092 JMP GDC 7}HAR 2094 GET1 LDA FCBDLN,X 2096 CMP FCBMLN,X 2098 BCC GET2 2100 JSR RTBUR 2102 JSR RDNXTS 2104 BCC GET1 2106 GEOF = * 21 8}08 JMP ERREOF 2110 GET2 TAY 2112 LDA (ZSBA),Y 2114 STA SVDBYT 2116 INY 2118 TYA 2120 STA FCBDLN,X 2122 EFLOOK = * 2124 9} LDY FCBLEN,X 2126 BNE GET3 2128 LDY FCBLSN+1,X 2130 BNE GET3 2132 CMP FCBMLN,X 2134 BCC GET3 2136 LDA #$03 2138 JMP R :}ETURN 2140 GET3 JMP GREAT 2142 DFMSTA 2144 JSR SETUP 2146 JSR FNDCODE 2148 JSR SFDIR 2150 BCS SFNF 2152 JSR TSTLOCK 2154 ;} JMP GREAT 2156 SFNF JMP ERFNF 2158 DFMCLS 2160 JSR SETUP 2162 LDA FCBOTC,X 2164 AND #OPOUT 2166 BEQ CLDONE 2168 ROL FC <}BFLG,X 2170 BCC CLUPDT 2172 JSR WRTLSEC 2174 JSR RRDIR 2176 LDA FCBCNT+1,X 2178 PHA 2180 LDA FCBCNT,X 2182 PHA 2184 L =}DA FCBOTC,X 2186 AND #OPAPND 2188 BEQ CLOUT 2190 JSR DFRDSU 2192 APP1 JSR RDNXTS 2194 BCC APP1 2196 LDA FCBSSN,X 2198 S >}TA FCBLSN,X 2200 LDA FCBSSN+1,X 2202 STA FCBLSN+1,X 2204 JSR WRTN2 2206 CLOUT LDY CDIRD 2208 CLC 2210 PLA 2212 ADC FILD ?}IR+DFDCNT,Y 2214 STA FILDIR+DFDCNT,Y 2216 PLA 2218 ADC FILDIR+DFDCNT+1,Y 2220 STA FILDIR+DFDCNT+1,Y 2222 LDA #DFDINU+DFD @}NLD 2224 STA FILDIR+DFDFL1,Y 2226 JSR WRTDIR 2228 JSR WRTVTOC 2230 CLDONE LDA #$00 2232 STA FCBOTC,X 2234 JMP FGREAT 223 A}6 CLUPDT = * 2238 ROL FCBFLG,X 2240 BCC CLDONE 2242 JSR WRCSIO 2244 JMP CLDONE 2246 RRDIR = * 2248 LDA FCBFNO,X 2250 LS B}R A 2252 LSR A 2254 STA SFNUM 2256 JSR FNSHFT 2258 STA CDIRS 2260 JSR FNSHFT 2262 JSR FNSHF1 2264 ASL A 2266 STA CDIR C}D 2268 JMP RDDIR 2270 FNSHFT LDA #$00 2272 FNSHF1 LDY #$03 2274 FNSHF2 ASL FCBFNO,X 2276 ROL A 2278 DEY 2280 BNE FNSHF2 2 D}282 RTS 2284 DFMDDC 2286 JSR SETUP 2288 LDA ICCOM,X 2290 CMP #254 2292 BEQ XFV 2294 CMP #MAXDDC 2296 BCS DVDCER 2298 E}SEC 2300 SBC #$20 2302 BCC DVDCER 2304 ASL A 2306 TAY 2308 LDA DVDCVT,Y 2310 PHA 2312 LDA DVDCVT+1,Y 2314 PHA 2316 R F}TS 2318 DVDCVT 2320 .DBYTE XRENAME-1 2322 .DBYTE XDELETE-1 2324 .DBYTE DVDCER-1 2326 .DBYTE XLOCK-1 2328 .DBYTE XUNLOCK- G}1 2330 .DBYTE XPOINT-1 2332 .DBYTE XNOTE-1 2334 MAXDDC = $27 2336 DVDCER JMP ERDVDC 2338 XFV JMP XFORMAT 2340 XRENAME 2342 H} JSR FNDCODE 2344 STY TEMP2 2346 JSR SFDIR 2348 BCC XRN1 2350 JMP ERFNF 2352 XRN1 JSR TSTLOCK 2354 JSR TSTDOS 2356 BNE I}XRN1A 2358 JSR DELDOS 2360 XRN1A LDY TEMP2 2362 JSR FNDCNX 2364 JSR TSTDOS 2366 BNE XRN1B 2368 LDY CDIRD 2370 LDA FILDI J}R+DFDSSN+1,Y 2372 PHA 2374 LDA FILDIR+DFDSSN,Y 2376 TAY 2378 PLA 2380 JSR SETDSO 2382 XRN1B LDX #0 2384 LDY CDIRD 2386 K}XRN2 LDA FNAME,X 2388 CMP #'? 2390 BEQ XRN3 2392 STA FILDIR+DFDPFN,Y 2394 XRN3 INY 2396 INX 2398 CPX #$0B 2400 BCC XRN2 L} 2402 LDX CURFCB 2404 JSR WRTDIR 2406 JSR FNDCODE 2408 JSR CSFDIR 2410 BCC XRN1 2412 JMP FGREAT 2414 XDELETE 2416 JSR M}FNDCODE 2418 JSR SFDIR 2420 BCS DFNF 2422 XDELX = * 2424 JSR XDEL0 2426 JSR TSTDOS 2428 BNE XDELY 2430 JSR DELDOS 2432 N}XDELY 2434 XDEL3 JSR WRTDIR 2436 JSR CSFDIR 2438 BCC XDELX 2440 JSR WRTVTOC 2442 JMP FGREAT 2444 XDEL0 JSR OPVTOC 2446 XD O}EL1 LDY CDIRD 2448 JSR TSTLOCK 2450 LDA #DFDEDE 2452 STA FILDIR+DFDFL1,Y 2454 JSR DFRDSU 2456 JMP XDEL2A 2458 XDEL2 JSR P}RDNXTS 2460 BCS XDEL4 2462 XDEL2A = * 2464 JSR FRESECT 2466 JMP XDEL2 2468 XDEL4 = * 2470 LDY #DVDWRQ 2472 LDA #$FF 2474 Q} STA (ZDRVA),Y 2476 RTS 2478 DFNF JMP ERFNF 2480 XLOCK 2482 LDA #DFDLOC 2484 STA TEMP4 2486 BNE XLCOM 2488 XUNLOCK 2490 R} LDA #0 2492 STA TEMP4 2494 XLCOM JSR FNDCODE 2496 JSR SFDIR 2498 BCC XLC1 2500 JMP ERFNF 2502 XLC1 LDY CDIRD 2504 LDA F S}ILDIR+DFDFL1,Y 2506 AND #$DF 2508 ORA TEMP4 2510 STA FILDIR+DFDFL1,Y 2512 JSR WRTDIR 2514 JSR CSFDIR 2516 BCC XLC1 2518 T} JMP FGREAT 2520 TSTLOCK 2522 LDY CDIRD 2524 LDA FILDIR+DFDFL1,Y 2526 AND #DFDLOC 2528 BNE TLF 2530 RTS 2532 TLF JMP ER U}FLOCK 2534 XPOINT 2536 LDA FCBFLG,X 2538 BMI PERR1 2540 LDA ICAUX4,X 2542 CMP FCBCSN+1,X 2544 BNE XP1 2546 LDA ICAUX3,X V} 2548 CMP FCBCSN,X 2550 BEQ XP2 2552 XP1 LDA FCBFLG,X 2554 BEQ XP1A 2556 JSR WRCSIO 2558 LDA #0 2560 STA FCBFLG,X 2562 W}XP1A = * 2564 LDA ICAUX4,X 2566 STA FCBLSN+1,X 2568 LDA ICAUX3,X 2570 STA FCBLSN,X 2572 JSR RDNSO 2574 BCS XPERR 2576 X X}P2 LDA ICAUX5,X 2578 CMP FCBMLN,X 2580 BCC XP3 2582 BEQ XP3 2584 XPERR = * 2586 JMP ERRPDL 2588 XP3 STA FCBDLN,X 2590 JM Y}P GREAT 2592 PERR1 JMP ERRPOT 2594 XNOTE 2596 LDA FCBDLN,X 2598 STA ICAUX5,X 2600 LDA FCBCSN,X 2602 STA ICAUX3,X 2604 LD Z}A FCBCSN+1,X 2606 STA ICAUX4,X 2608 JMP GREAT 2610 XFORMAT 2612 LDA ZSBA+1 2614 STA DCBBUF+1 2616 LDA ZSBA 2618 STA DCB [}BUF 2620 LDA #DCBCFD 2622 STA DCBCMD 2624 LDA #$40 2626 STA DCBSTA 2628 LDX DRVTYP 2630 LDA #$31 2632 LDY DSKTIM 2634 \} JSR DSIO2 2636 BPL XF0 2638 CPY #$90 2640 BNE XFERR 2642 TSTFMT = * 2644 LDY #0 2646 LDA (ZSBA),Y 2648 CMP #$FF 2650 ]}BNE XFBAD 2652 INY 2654 LDA (ZSBA),Y 2656 CMP #$FF 2658 BEQ XFERR 2660 XFBAD JMP ERDBAD 2662 XFERR JMP RETURN 2664 XF0 26 ^}66 LDA #0 2668 TAY 2670 XF1 STA (ZDRVA),Y 2672 INY 2674 BPL XF1 2676 LDY #0 2678 LDA #2 2680 STA (ZDRVA),Y 2682 INY 2 _}684 LDA #$C3 2686 STA (ZDRVA),Y 2688 INY 2690 INY 2692 STA (ZDRVA),Y 2694 LDA #2 2696 DEY 2698 STA (ZDRVA),Y 2700 IN `}Y 2702 INY 2704 STA (ZDRVA),Y 2706 LDY #DVDSMP 2708 LDA #$FF 2710 XF2 STA (ZDRVA),Y 2712 INY 2714 CPY #DVDSMP+90 2716 a}BNE XF2 2718 LDA #$0F 2720 LDY #DVDSMP 2722 STA (ZDRVA),Y 2724 LDY #DVDSMP+45 2726 LDA #0 2728 STA (ZDRVA),Y 2730 INY b}2732 LDA #$7F 2734 STA (ZDRVA),Y 2736 JSR WRTVTOC 2738 LDA #0 2740 TAY 2742 XF3 STA FILDIR,Y 2744 INY 2746 BPL XF3 c}2748 LDA #7 2750 STA CDIRS 2752 XF4 JSR WRTDIR 2754 DEC CDIRS 2756 BPL XF4 2758 JSR DELDOS 2760 JMP FGREAT 2762 LISTDIR d} 2764 LDA #0 2766 STA TEMP4 2768 JSR SFDIR 2770 BCC LDENT1 2772 BCS LDCNT 2774 GDCHAR 2776 BIT TEMP4 2778 BMI LDDONE 2 e}780 LDY TEMP4 2782 LDA (ZSBA),Y 2784 STA SVDBYT 2786 INC TEMP4 2788 CMP #EOL 2790 BNE GDCRTN 2792 CPY #17 2794 BCS LD f}ENT 2796 LDA #$80 2798 STA TEMP4 2800 GDCRTN JMP GREAT 2802 LDENT LDA #0 2804 STA TEMP4 2806 JSR CSFDIR 2808 BCS LDCNT 2 g}810 LDENT1 2812 JSR FDENT 2814 JMP GREAT 2816 LDCNT JSR RDVTOC 2818 LDY #DVDNSA+1 2820 LDA (ZDRVA),Y 2822 PHA 2824 DEY q}XB%DOS SYSB*)DUP SYSBSDOS ASMBDOS SRCBMTOS COMBVMTOS DOCB">MYDCUST BASB`MYDCUST TXTB eRMBOOT3AAUTB oRMBOOT3ADOC2826 LDA (ZDRVA),Y 2828 TAY 2830 PLA 2832 JSR CVDX 2834 LDY #3 2836 LDX #FSCML-1 2838 MVFSCM LDA FSCM,X 2840 STA (ZSBA r}),Y 2842 INY 2844 DEX 2846 BPL MVFSCM 2848 JSR CVDY 2850 LDA #0 2852 STA TEMP4 2854 JMP FGREAT 2856 LDDONE 2858 JMP E s}RREOF 2860 FSCM .BYTE "SROTCES EERF " 2862 FSCML = *-FSCM 2864 FDENT 2866 LDY #0 2868 LDA #$20 2870 STA (ZSBA),Y 2872 LDX t} CDIRD 2874 LDA FILDIR+DFDFL1,X 2876 AND #DFDLOC 2878 BEQ LD1 2880 LDA #'* 2882 STA (ZSBA),Y 2884 LD1 INY 2886 LDA #$20 u} 2888 STA (ZSBA),Y 2890 INY 2892 LD2 LDA FILDIR+DFDPFN,X 2894 STA (ZSBA),Y 2896 INX 2898 INY 2900 CPY #13 2902 BCC v}LD2 2904 LDA #$20 2906 STA (ZSBA),Y 2908 INY 2910 STY TEMP4 2912 LDX CDIRD 2914 LDY FILDIR+DFDCNT,X 2916 LDA FILDIR+DF w}DCNT+1,X 2918 CVDX 2920 LDX #100 2922 JSR CVDIGIT 2924 LDX #10 2926 JSR CVDIGIT 2928 TYA 2930 JSR STDIGIT 2932 LDY #17 x} 2934 CVDY LDA #EOL 2936 STA (ZSBA),Y 2938 LDY #0 2940 STY TEMP4 2942 RTS 2944 CVDIGIT STX TEMP3 2946 LDX #$FF 2948 CVD1 y} STA TEMP2 2950 STY TEMP1 2952 INX 2954 SEC 2956 LDA TEMP1 2958 SBC TEMP3 2960 TAY 2962 LDA TEMP2 2964 SBC #0 2966 B z}CS CVD1 2968 TXA 2970 STDIGIT ORA #$30 2972 LDY TEMP4 2974 STA (ZSBA),Y 2976 INC TEMP4 2978 LDA TEMP2 2980 LDY TEMP1 29 {}82 RTS 2984 FNDCODE 2986 LDA ICBAL,X 2988 STA ZBUFP 2990 LDA ICBAH,X 2992 STA ZBUFP+1 2994 LDY #2 2996 FD0A LDA (ZBUFP) |},Y 2998 DEY 3000 BMI FNDERR 3002 CMP #': 3004 FD0B 3006 BNE FD0A 3008 INY 3010 FNDCNX 3012 LDX #11 3014 LDA #$20 3016 }}FD0 STA FNAME,X 3018 DEX 3020 BPL FD0 3022 LDX #0 3024 STX EXTSW 3026 FD1 INY 3028 LDA (ZBUFP),Y 3030 CMP #'* 3032 BNE ~} FD3 3034 FD2 LDA #'? 3036 JSR FDSCHAR 3038 BCC FD2 3040 BPL FD1 3042 BMI FDEND 3044 FD3 CMP #'. 3046 BNE FD4 3048 BIT }EXTSW 3050 BMI FDEND 3052 LDX #8 3054 ROR EXTSW 3056 BCC FD1 3058 FD4 CMP #'? 3060 BEQ FD6 3062 CMP #'A 3064 BCC FD5 3 }066 CMP #$5B 3068 BCC FD6 3070 FD5 CPX #0 3072 BEQ FNDERR 3074 CMP #$30 3076 BCC FDEND 3078 CMP #$3A 3080 BCS FDEND 30 }82 FD6 JSR FDSCHAR 3084 JMP FD1 3086 FDEND LDX CURFCB 3088 RTS 3090 FNDERR JMP ERRFN 3092 CPX #8 3094 BCC FDSC2 3096 }BEQ FDSC1 3098 CPX #12 3100 BCC FDSC2 3102 RTS 3104 FDSC1 BIT EXTSW 3106 BMI FDSC2 3108 RTS 3110 FDSC2 STA FNAME,X 3112 } INX 3114 CLC 3116 RTS 3118 SFDIR 3120 LDA #$FF 3122 STA DHOLES 3124 STA CDIRS 3126 STA SFNUM 3128 LDA #$70 3130 STA }CDIRD 3132 CSFDIR 3134 INC SFNUM 3136 CLC 3138 LDA CDIRD 3140 ADC #DFDELN 3142 BPL SFD2 3144 INC CDIRS 3146 LDA #8 }3148 CMP CDIRS 3150 BCC SFD1 3152 BEQ SDRTN 3154 SFD1 JSR RDDIR 3156 LDA #0 3158 SFD2 STA CDIRD 3160 TAY 3162 LDA FILDI }R+DFDFL1,Y 3164 BEQ SFDSH 3166 BMI SFDSH 3168 AND #DFDOUT 3170 BNE CSFDIR 3172 LDX #0 3174 SFD3 LDA FNAME,X 3176 CMP #' }? 3178 BEQ SFD4 3180 CMP FILDIR+DFDPFN,Y 3182 BNE CSFDIR 3184 SFD4 INX 3186 INY 3188 CPX #11 3190 BNE SFD3 3192 CLC 31 }94 BCC SDRTN 3196 SFDSH 3198 LDA DHOLES 3200 BPL SFDSH1 3202 LDA CDIRS 3204 STA DHOLES 3206 LDA CDIRD 3208 STA DHOLED }3210 LDA SFNUM 3212 STA DHFNUM 3214 SFDSH1 LDA FILDIR+DFDFL1,Y 3216 BMI CSFDIR 3218 SEC 3220 SDRTN LDX CURFCB 3222 RTS 3 }224 WRTNXS 3226 LDA FCBFLG,X 3228 BMI WRTN1 3230 ASL A 3232 BPL WRU1 3234 ASL A 3236 STA FCBFLG,X 3238 JSR WRCSIO 3240 } BMI WRNERR 3242 WRU1 JMP RDNXTS 3244 WRTN1 JSR GETSECTOR 3246 WRTLSEC LDA FCBDLN,X 3248 WRTLS1 LDY DRVLBT 3250 STA (ZSBA), }Y 3252 WRTN2 LDA FCBLSN+1,X 3254 ORA FCBFNO,X 3256 LDY DRVMDL 3258 STA (ZSBA),Y 3260 INY 3262 LDA FCBLSN,X 3264 STA (ZS }BA),Y 3266 JSR WRCSIO 3268 BPL WRTN5 3270 WRNERR LDA DCBSTA 3272 STA TEMP4 3274 LDA #0 3276 STA FCBOTC,X 3278 LDA TEMP4 } 3280 JMP RETURN 3282 WRTN5 3284 INC FCBCNT,X 3286 BNE WRTN6 3288 INC FCBCNT+1,X 3290 WRTN6 3292 JSR MVLSN 3294 LDA #0 }3296 STA FCBLSN,X 3298 STA FCBLSN+1,X 3300 STA FCBDLN,X 3302 LDA DRVMDL 3304 STA FCBMLN,X 3306 CLC 3308 RTS 3310 } WRCSIO SEC 3312 RWCSIO LDA FCBCSN+1,X 3314 LDY FCBCSN,X 3316 JMP DSIO 3318 MVLSN LDA FCBLSN,X 3320 STA FCBCSN,X 3322 LDA } FCBLSN+1,X 3324 STA FCBCSN+1,X 3326 RTS 3328 RDNXTS 3330 LDA FCBFLG,X 3332 BEQ RDNSO 3334 JMP WRTNXS 3336 RDNSO = * 333 }8 LDA FCBLSN,X 3340 ORA FCBLSN+1,X 3342 BNE RDNS1 3344 SEC 3346 RTS 3348 RDNS1 JSR MVLSN 3350 CLC 3352 JSR RWCSIO 3 }354 BMI RDIOER 3356 LDY DRVMDL 3358 LDA (ZSBA),Y 3360 AND #$FC 3362 CMP FCBFNO,X 3364 BNE RDFNMM 3366 LDA (ZSBA),Y 336 }8 AND #$03 3370 STA FCBLSN+1,X 3372 INY 3374 LDA (ZSBA),Y 3376 STA FCBLSN,X 3378 INY 3380 LDA (ZSBA),Y 3382 PHA 3384 } LDA FCBSLT,Y 3386 BNE RDNS3 3388 PLA 3390 BMI RDNS2 3392 LDA #125 3394 RDNS2 AND #$7F 3396 PHA 3398 RDNS3 PLA 3400 STA } FCBMLN,X 3402 LDA #0 3404 STA FCBDLN,X 3406 CLC 3408 RTS 3410 RDIOER JSR ERRIO 3412 RDFNMM = * 3414 LDA ICCOM,X 3 }416 CMP #$21 3418 BEQ RDDELE 3420 JSR ERFNMM 3422 RDDELE SEC 3424 RTS 3426 RDDIR CLC 3428 BCC DIRIO 3430 WRTDIR SEC 3432 } DIRIO PHP 3434 LDA #FILDIR/256 3436 STA DCBBUF+1 3438 LDA #FILDIR&255 3440 STA DCBBUF 3442 CLC 3444 LDA CDIRS 3446 AD }C #$69 3448 TAY 3450 LDA #1 3452 ADC #0 3454 JMP DSYSIO 3456 RDVTOC 3458 LDY #DVDWRQ 3460 LDA (ZDRVA),Y 3462 BEQ RD }VGO 3464 RTS 3466 RDVGO CLC 3468 BCC VTIO 3470 WRTVTOC 3472 WRVTOC LDY #DVDWRQ 3474 LDA #0 3476 STA (ZDRVA),Y 3478 SEC 3 }480 VTIO PHP 3482 LDA ZDRVA+1 3484 STA DCBBUF+1 3486 LDA ZDRVA 3488 STA DCBBUF 3490 LDY #$68 3492 LDA #1 3494 DSYSIO 34 }96 PLP 3498 DSYSIA 3500 LDX DRVTYP 3502 JSR BSIO 3504 BMI DSIOER 3506 RTS 3508 DSIOER CMP #DCBDER 3510 BEQ DEAD 3512 J }MP ERRIO 3514 DEAD JMP ERRSYS 3516 OPVTOC 3518 JSR RDVTOC 3520 JMP WRTVTOC 3522 FRESECT 3524 LDA FCBCSN,X 3526 ORA FCBCSN }+1,X 3528 BEQ FSRTS 3530 LDA #0 3532 LDY #3 3534 FS1 LSR FCBCSN+1,X 3536 ROR FCBCSN,X 3538 ROR A 3540 DEY 3542 BNE FS1 } 3544 LDY #5 3546 FS2 ROR A 3548 DEY 3550 BNE FS2 3552 TAY 3554 LDA #0 3556 SEC 3558 FS3 ROR A 3560 DEY 3562 BPL FS3 }3564 PHA 3566 LDA FCBCSN,X 3568 ADC #DVDSMP 3570 TAY 3572 PLA 3574 ORA (ZDRVA),Y 3576 STA (ZDRVA),Y 3578 LDY #DVDN }SA 3580 LDA (ZDRVA),Y 3582 CLC 3584 ADC #1 3586 STA (ZDRVA),Y 3588 INY 3590 LDA (ZDRVA),Y 3592 ADC #0 3594 STA (ZDRVA }),Y 3596 FSRTS = * 3598 RTS 3600 GETSECTOR 3602 LDY #DVDSMP-1 3604 GS1 INY 3606 CPY #90+DVDSMP 3608 BCS GSERR 3610 LDA ( }ZDRVA),Y 3612 BEQ GS1 3614 STY TEMP1 3616 PHA 3618 SEC 3620 LDY #DVDNSA 3622 LDA (ZDRVA),Y 3624 SBC #1 3626 STA (ZDRV }A),Y 3628 INY 3630 LDA (ZDRVA),Y 3632 SBC #0 3634 STA (ZDRVA),Y 3636 INY 3638 LDA #$FF 3640 STA (ZDRVA),Y 3642 PLA 36 }44 LDY #$FF 3646 GS2 INY 3648 ASL A 3650 BCC GS2 3652 STY TEMP2 3654 GS3 LSR A 3656 DEY 3658 BPL GS3 3660 LDY TEMP1 36 }62 STA (ZDRVA),Y 3664 SEC 3666 LDA TEMP1 3668 SBC #DVDSMP 3670 LDY #0 3672 STY TEMP1 3674 GS4 ASL A 3676 ROL TEMP1 367 }8 INY 3680 CPY #3 3682 BCC GS4 3684 CLC 3686 ADC TEMP2 3688 STA FCBLSN,X 3690 LDA TEMP1 3692 ADC #0 3694 STA FCBLSN+ }1,X 3696 RTS 3698 GSERR JMP ERRNSA 3700 SETUP LDA #$9F 3702 STA ERRNO 3704 STX CURFCB 3706 TSX 3708 INX 3710 INX 3712 }STX ENTSTK 3714 LDX CURFCB 3716 LDY ICDNOZ 3718 STY DCBDRV 3720 DEY 3722 LDA DBUFAL,Y 3724 STA ZDRVA 3726 LDA DBUFAH,Y } 3728 STA ZDRVA+1 3730 LDA DRVTBL,Y 3732 BEQ DERR1 3734 STA DRVTYP 3736 TAY 3738 LDA DRVMDL,Y 3740 STA DRVMDL 3742 LD }A DRVLBT,Y 3744 STA DRVLBT 3746 LDY FCBBUF,X 3748 DEY 3750 BPL SSBA 3752 LDY #0 3754 GSB1 LDA SECTBL,Y 3756 BEQ GSB4 37 }58 GSB2 INY 3760 CPY #$10 3762 BCC GSB1 3764 GSB3 JMP ERRNSB 3766 GSB4 LDA DRVTYP 3768 LSR A 3770 BCS GSB5 3772 INY 3774 } CPY #16 3776 BCS GSB3 3778 LDA SECTBL,Y 3780 BNE GSB2 3782 DEY 3784 LDA #$80 3786 STA SECTBL+1,Y 3788 GSB5 LDA #$80 3 }790 STA SECTBL,Y 3792 TYA 3794 STA FCBBUF,X 3796 INC FCBBUF,X 3798 SSBA LDA SABUFL,Y 3800 STA ZSBA 3802 LDA SABUFH,Y 38 }04 STA ZSBA+1 3806 RTS 3808 DERR1 JMP ERRDNO 3810 FRESBUF = * 3812 LDY FCBBUF,X 3814 BEQ FSBR 3816 DEY 3818 LDA #0 3820 } STA FCBBUF,X 3822 STA SECTBL,Y 3824 LDA DRVTYP 3826 LSR A 3828 BCS FSBR 3830 LSR A 3832 STA SECTBL+1,Y 3834 FSBR RTS }3836 DSIO 3838 PHA 3840 LDA ZSBA 3842 STA DCBBUF 3844 LDA ZSBA+1 3846 STA DCBBUF+1 3848 PLA 3850 LDX DRVTYP 3852 JSR }BSIO 3854 RTS 3856 WRTDOS 3858 LDY FCBCSN,X 3860 LDA FCBCSN+1,X 3862 JSR SETDSO 3864 JSR WD0 3866 JMP GREAT 3868 DELDOS } 3870 LDA #0 3872 DD1 3874 STA DFSFLG 3876 WRTSCO 3878 LDA #FMSORG/256 3880 STA DCBBUF+1 3882 LDA #FMSORG&255 3884 STA }DCBBUF 3886 LDA #0 3888 STA DCBSEC 3890 STA DCBSEC+1 3892 WRNBS INC DCBSEC 3894 LDX #1 3896 SEC 3898 JSR BSIOR 3900 CL }C 3902 LDA DCBBUF 3904 ADC #128 3906 STA DCBBUF 3908 LDA DCBBUF+1 3910 ADC #0 3912 STA DCBBUF+1 3914 LDA DCBSEC 3916 }CMP BRCNT 3918 BNE WRNBS 3920 RTS 3922 SETDSO STY DFLINK 3924 STA DFLINK+1 3926 LDA DRVTYP 3928 STA DFSFLG 3930 LDY DRV }MDL 3932 STY BLDISP 3934 BNE DD1 3936 WD0 LDA DFLADR 3938 STA ZBUFP 3940 LDA DFLADR+1 3942 STA ZBUFP+1 3944 WD1 LDY #0 3 }946 WD2 LDA (ZBUFP),Y 3948 STA (ZSBA),Y 3950 INY 3952 CPY DRVMDL 3954 BCC WD2 3956 TYA 3958 STA FCBDLN,X 3960 JSR INCB }A 3962 CMP SASA+1 3964 BCC WD3 3966 BNE WD4 3968 LDA ZBUFP 3970 CMP SASA 3972 BCC WD3 3974 BNE WD4 3976 WD3 JSR WRTNXS } 3978 JMP WD1 3980 WD4 RTS 3982 TSTDOS 3984 LDY #11 3986 TDF1 LDA FNAME-1,Y 3988 CMP DFN-1,Y 3990 BNE TDFR 3992 DEY 3994 } BNE TDF1 3996 TDFR RTS 3998 DFN .BYTE "DOS SYS" 4000 ERDBAD INC ERRNO 4002 ERAPO INC ERRNO 4004 ERRPOT INC ERRNO 4006 ERF }NF INC ERRNO 4008 ERDFULL INC ERRNO 4010 ERDVDC INC ERRNO 4012 ERFLOCK INC ERRNO 4014 ERRPDL INC ERRNO 4016 ERRFN INC ERRNO 4 }018 ERFNMM INC ERRNO 4020 ERRSYS INC ERRNO 4022 ERRNSA INC ERRNO 4024 ERRNSB INC ERRNO 4026 ERRDNO INC ERRNO 4028 LDA ERRNO }4030 RETURN LDX CURFCB 4032 STA ICSTA,X 4034 LDX ENTSTK 4036 TXS 4038 LDX CURFCB 4040 TAY 4042 LDA SVDBYT 4044 RTS 404 }6 ERRIO LDA DCBSTA 4048 BMI RETURN 4050 FGREAT LDX CURFCB 4052 JSR FRESBUF 4054 GREAT LDA #01 4056 BNE RETURN 4058 ERREOF }LDA #$88 4060 BMI RETURN 4062 DRVMDL .BYTE 0 4064 .BYTE 125 4066 .BYTE 253 4068 DRVLBT .BYTE 0 4070 .BYTE 127 4072 .BYTE } 255 4074 DRVTYP *= *+1 4076 RETRY *= *+1 4078 ENTSTK *= *+1 4080 CURFCB *= *+1 4082 DHOLES *= *+1 4084 DHOLED *= *+1 4086 DH }FNUM *= *+1 4088 CDIRD *= *+1 4090 CDIRS *= *+1 4092 SFNUM *= *+1 4094 SVDBYT *= *+1 4096 SVD1 *= *+1 4098 SVD2 *= *+1 4100 S }VD3 *= *+1 4102 EXTSW 4104 TEMP1 *= *+1 4106 TEMP2 *= *+1 4108 TEMP3 *= *+1 4110 TEMP4 *= *+1 4112 BURTYP *= *+1 4114 DRVTBL }*= *+8 4116 SECTBL *= *+16 4118 DBUFAL *= *+8 4120 DBUFAH *= *+8 4122 SABUFL *= *+16 4124 SABUFH *= *+16 4126 FNAME *= *+12 4 }128 AFNAME *= *+12 4130 MDRV *= *+1 4132 Z = * 4134 *= $1381 4136 FCB 4138 FCBFNO *= *+1 4140 FCBOTC *= *+1 4142 *= *+1 41 }44 FCBSLT *= *+1 4146 FCBFLG *= *+1 4148 FCBMLN *= *+1 4150 FCBDLN *= *+1 4152 FCBBUF *= *+1 4154 FCBCSN *= *+2 4156 FCBLSN * }= *+2 4158 FCBSSN *= *+2 4160 FCBCRS 4162 FCBCNT *= *+2 4164 FCBLEN = *-FCB 4166 *= FCBLEN*7+* 4168 OPIN = $04 4170 OPOUT = }$08 4172 OPDIR = $02 4174 OPAPND = $01 4176 FCBFAS = $80 4178 FCBFSM = $40 4180 DFDFL1 = 0 4182 DFDCNT = 1 4184 DFDSSN = 3 41 }86 DFDPFN = 5 4188 DFDXFN = 13 4190 DFDELN = 16 4192 DFDEUU = 0 4194 DFDEDE = $80 4196 DFDINU = $40 4198 DFDOUT = $01 4200 DF }DLOC = $20 4202 DFDNLD = $02 4204 FILDIR *= *+256 4206 DVDTCD = 0 4208 DVDMSN = 1 4210 DVDNSA = 3 4212 DVDWRQ = 5 4214 DVDSMP } = 10 4216 ENDFMS = * 4218 .END FILDIR *= *+256 4206 DVDTCD = 0 4208 DVDMSN = 1 4210 DVDNSA = 3 4212 DVDWRQ = 5 4214 DVDSMP !Pm&&'i t8 )` s8t8) s8s8) s8`r8` B VBD8EJK} VBHI VBHI VBHI Vt8BHI Vu8BHI Vx8BHI Vy8x}88t8z8y8u8{8z8iz8{8t8'u8&''z8'{8 'BDEHI VBHI VBHI V}BHI VBHI VBHI Vt8BHI Vu8 B Vlt8`'(.(L`,C-L,x-} ԩ--X` ɟ(H-d -ȭ ҙD-hh@-ͨ-h 0 ɟ IH Ҭ-d-șD-Mh}+h@-.حP NLD.TV8V0Add which job7s8 type- 1)M.L. 2)BASICHow many clocks assigned to job==>Please input filespec ? } 9 9/L. 2)BASICHow many clocks assigned to job==>Please input filespec ? 3NOTE: The first uploaded ARC of MTOScontained compaction errors thatPREVENTD usability. This has beenREPAIRED in this ve}rsion.John Nagy, CHAOS BBS (517) 371-1106 M.ulti-T.asking O.perating S.ystem M.T.O.S. MT-}OS MTOS Copyright (C) 1987 by Tom Hunt (beta test version) 12-25-87(Merry Christm}as Atarians, from me to you!) MTOS is a revolutionary new O.S for Atari 8-bit computers with 256k (or more).It is actually} a O.S. extention, since it works with the resident ROM basedAtari O.S., and with DOS. With MTOS installed, the multitasking} environmentis made available to the Atari owner This document is divided into the following sections,WHAT MULTITASKING }IS,WHAT MULTITASKING ISN'T,WHAT MTOS IS, AND WHAT IT CAN DO,WHAT MTOS ISN'T, AND WHAT IT CAN'T DO,GETTING STARTED,and SP}ECIAL NOTES.If the subject of time-sharing/multitasking is new to you, then you shouldread the whole text. ______________}_________________________________________________________________WHAT MULTITASKING IS______________________________________}_________________________________________ Everyone seems to know a little about what multitasking is. Simply put,multitaski}ng is a computer operating environment that allows more than oneprogram to be run at the same time. There is a form of multi}tasking thatoccurs during the regular Atari computer functions. These are slices of time inwhich your program is interrupte}d by hardware signals, and system control isturned over to the O.S. for the purpose of performing system tasks. The VBIand }DLI are two interrupts that you've probably heard about. During theseinterrupts, you can even make the O.S. perform some tas}ks that you've madeprovision for, by pointing the appropriate vector to point to your m.l.routine. But the realm of multit}asking is a realm whose domain has been traditionallythe MINI and MAIN FRAME computers. These large computers are not only c}apableof multitasking, but are also capable of supporting the MULTI-USER environment.In a situation like this, individual u}sers have a job (aka task, program,application) running on his/her assigned terminal. To each user, it appearsas tho they h}ave the sole use of the computer's resources. Before multiuser/ multitasking, users had to wait for their turn to use the c}omputer. But usingmodern operating systems, time sharing is a common thing. Think about time being a pie, and time-sh}aring as slices of that pie. Each jobis assigned a slice of the time pie. Some jobs get assigned bigger slices than others,} depending on their priority. So multitasking is a valuable asset if youwant to do some word-processing, while another progr}am is working on some othertask in the background._________________________________________________________________________}______WHAT MULTITASKING ISN'T_______________________________________________________________________________ There is an o}ld saying- "There ain't no such thing as a free lunch!". In otherwords, multitasking is system taxing! You can have one prog}ram hogging 100% of the system's resources, or 2 programs sharing 50% of the system's resources,and so on... The pie never }gets any bigger, you just cut the slices smaller.Plus, there is the O.S. overhead involved in the juggling. That is, each ti}mea task's clock counts down to zero, the multitasker has to jump in there to dohouse-keeping to get things ready for the n}ext task on the agenda. This housekeeping eats up machine cycles, and might account fo 4% of the time pie withonly 2 jobs r}unning. With 3 jobs running, it goes up to 8%. With 6 jobs run-ning it goes up to a whopping 20%!! So, the more jobs you hav}e running, theslower your programs will execute. A multitasking environment will not giveyou more processing power. It will} only distribute processing among differentjobs.___________________________________________________________________________}____WHAT MTOS IS, AND WHAT IT CAN DO_______________________________________________________________________________ MTOS f }ollows the discription about multitasking and time sharing. It allowsthe Atari computer owner to run up to 6 tasks at the sa }me time. In the past,this kind of system environment was totaly unavailable to us. Now you can beusing a word processor, fl }ip to a basic game, flip to check on the progressof a program doing calculations, then flip back to your word processor. And }all while each individual program is running! You can write your own programsthat are compatable with MTOS, if a few simple } rules are observed. Theserules will be discussed later.___________________________________________________________________}____________WHAT MTOS ISN'T, AND WHAT IT CANNOT DO_________________________________________________________________________}______ As you add jobs to MTOS, each program will seem to run slower. For someprograms, this is unacceptable. Other program}s, like a word processor, spendalot of wasted time in loops, waiting for events to occur. Like waiting fora keypress. CPU t}ime could be put to better use with MTOS. The amount of memory available to each program is limited to 16k. The amountof sc}reen ram allocated to each task is 1280 bytes, enough for GRAPHICS 0,1,2,3,4,5,6,12, and 13. The programs running under MTOS} must be "well behaved".That is to say that they shouldn't steal the VVBLKD vector, or the VKEYBDvectors. They shouldn't in}terfere with any memory above $7FFF, or from$2600-$3FFF. If you do so, you risk either interferring with another program,or} at worse, a total system crash. Any free and legal addresses from$0000-$0500 (with the exception of the above mentioned vec}tors!) MAY be used! If your program doesn't follow the rules, there is nothing to prevent it fromdoing so. On the CPU's use}d by large computers is a mask that will notallow any illegal addressing, and will return an error message to the user.The }6502 family of CPU's don't have this capability.M.l. programs must be assembeled to reside from $4000-$7FFF. Your bootingga}me disks are definatly not MTOS compatable. These programming constraintsof the multitasking environment are not out of the }ordanary, since program-mers working on a mainframe computer must make "well behaved" programs, also.______________________}_________________________________________________________GETTING STARTED___________________________________________________}____________________________ There is a built-in keyboard buffer in MTOS. Sparta dos users need to KEYOFF before loading MT}OS. MTOS may be used with or without BASIC, but if youwant to mix running both m.l. and BASIC programs, be sure to boot with}outholding down the option key. When MTOS initializes, you will be looking at the executor screen. Theexecutor program (ca}lled Exec) will be running, and reserves task #0for itself. You should press a 1 to initialize a new task. After this,You c }an press a 1 to initialze a m.l. program, or a 2 toinitialize a basic program. There is also a test mode that is initialized!} bya 3. You will be prompted for the amount of clocks to be assigned to the newtask. 2-9 is the normal amount, but you can "}input any single character. Thatcharacter will have $30 subtracted from it's atascii value, and the new valueused for the a#}mount of core clocks assinged to the new task. For instance, ifyou would input a F, the value 16 would be the amount of core$} clocks assigned.If you chose the m.l. option (2), you will be prompted for the filespec ofthe object file. A m.l. program %}has to obey the rules (see above)! Theprocess will then be executed to get either the basic cartridge or your m.l.program i&}nitialized. To detach from Exec, and attach to the job you just started, press 2 to(view) the job. You will be prompted for'} which job, which you choose from theones listed on the Exec screen as being active. If you did everything asdescribed abov(}e, you should now have your terminal attached to the new task,and if you chose basic, you should be looking at basic's famil)}iar READYprompt. To detach and go back to Exec, have your joystick plugged in to thesecond port (actually PORT1), and press*} the trigger._______________________________________________________________________________SPECIAL NOTES_________________+}______________________________________________________________ This is a beta test version, and I request that you please ke,}ep detailednotes about bugs, and send them to me, Tom Hunt. This will help me greatlyin getting MTOS in to the kind of shap-}e that the Atari owner deserves. Pleasenote what kind of jobs were running, in what order, and what exactlyhappens when the.} bug shows. This beta version is just that, a test version towork out bugs. The m.l. loader routine only loads single stage/} load files. This will beworked on to multi-stage load files. Also, the m.l. loader routine seems goodfor only one load at 0}this time. The balance of tasks have to be basic, ortest-loops. I have to work on moving the screens to different locations,1}since sometimes the editor balks at where some of them are presently located.Because of this problem, some task combination2}s work better than others(with this beta version). Just note the ones that work good, and be patientfor version 1.0 to be r3}eleased. I will also be working to support the Spartados 128k ramdisk ("RD D8: /E"), so you can use a ramdisk with your MTOS4}programs. The beta version should NOT be used with any ramdisk. It can beloaded from a ramdisk, but will then use the exten5}ded ram banks, corruptingany files in the ramdisk.There is a rudimentary TOOLKIT available, and also under development. The6}entry point to the TOOLKIT'S routines will be published later. Also, this version is compatable only with the internal memo7}ry upgrades, NOTwith the MIO. The keyboard buffer and the keyboard mask is still being workedon, so you might have some dif8}ficulty with keystrokes being sent to the wrongtask. In the best of Atari traditions, page 6 of memory is up for grabs. I s9}uggestthat you avoid using it when developing a program for MTOS. If you make an interesting program for MTOS, please uploa:}d it to The BalloonWorks bbs. The number is 419-289-8392. Don't wait for somebody else to make MTOS compatable programs,do;} it yourself! It really isn't hard if you followthe simple rules mentioned above. If you don't have a password on The Ballo<}on Works bbs, and you want tocontact me, just leave a message in any of the message bases, and I'll spotit. Tom =}Huntrks bbs, and you want tocontact me, just leave a message in any of the message bases, and I'll spotit. Tom rFSTDUPLMARGIKE ?}d- +-@@K:n0-(%}򠠠0(x((( This program alters t@}he DUP.SYS))(!file, allowing you to set default&&(screen colors and left margin./(/($ For advanced users, it aA}lso creates,,($a file called RUNDUP.OBJ. RUNDUP.OBJ++(#allows you to patch binary files so++(#that, after they arB}e loaded or run,((( they will return DIRECTLY to the,,($MyDos menu, without first re-loading,,($the DUP.SYS file C}into RAM. To affect++(#this change to a binary file called-#(ANYFILE.OBJ, type from DOS:- A (}(CD} (ANYFILE.OBJ,RUNDUP.OBJ/A (D( ANYFILE.OBJ (E"!(RUNDUP.OBJ,ANYFILE.OBJ!(,,(,(! WARNING: Not aE}ll files will work6++(#after performing this modification.@((( BACK THEM UP FIRST. Because someJ''(programs use theF} same memory asT))(!DUP.SYS, there is nothing to jump^&&(back to. Also, the programs soh))(!modified will no longerG} terminater''(properly when loaded from other|%%(DOS's. If any of the above is""(unclear, simply delete theH}(RUNDUP.OBJ file. A5 (} (5($It is also recommended that you back,,($up your DOS disk before running I}this(program.,(,(! You will now be asked to specify**("the default DOS menu screen colors%%(and left maJ}rgin which will be&&(applied whenever you type DOS.-(-("Use up and down keyboard arrows to))(!select screen coK}lor, use left and))(!right arrows to select intensity,##(press when you are!!(satisfied with the colorL}.(6-F:A,6-A( A&,(,(!Now use the same method to select0(screen border color.:(6-F:AM},6-A( AD+(+( Now use the left and right arrowN&&(keys to select text luminance.X(6-F:A N},6-A ( Ab,(,(!Now select a default left margin,l((between 0 and 2) >>>v@!! O})!@A)()(Now insert a disk containing a**("BACKUP of MyDos 4.53. This program,,($may successfP}ully modify other DOS's,$$(but there are no guarantees..(.(#Press to modify DOS, or any(other key tQ}o exit.AdAUF:Ad,AU.+F:B2y,"@)F:B2y,"@. F:B2y,@R}A ;B,;@9,67B,. 5@5@@ D:DUP.SYS --@S}@9")67<,.>:,- $$6-?:C:,<@W@:7,,"A3/@:7%@,,"@M67&@<&@,.>:,WU} APH R-@\9@:7,,"A/@:7%@,,"A(9 Af p-&@%@zV}67<,.>:A4, 5@5@@ D:DUP.SYS)*@AU)*@AU)*W}@A)*@@)*@A)*@@'-A A'*@F:, X}(@@---F:@,%F:@,$AVBU5F:,"@v A   --@@Y} D:RUNDUP.OBJ)*@AU)*@AU)*@A$)*@@)*@Z}A%)*@@*@F:%@,&*@F:%@,&@$'(!(DOS has been modified.[}$('.RR104,104,104,10,10,10,10,170,169,7,157,66,3,104,157,69,3,104,157,68,3,104,1578::73,3,104,157,72,3,32,86,228,132,\}212,160,0,132,213,96B>-@@#>(#ӠΠ٠ϠŖL)@$V)@`'"]}@()"@E'6-%@j'"@))"@a'6-&@t'"@1)"@B'6-%@~'"@0)^}"@C'6-&@"AU$ 6-AU!AU6-  A D:M_}YDCUST.BAS  A D:Mc This is a simple Atari BASIC program. It customizes the DUP.SYS file of MyDos 4.50. It allows you to set a default screen coa}lor, border color, text luminance, and left margin. These defaults are applied when the user types DOS. The program also creb}ates a 1-sector binary load file called RUNDUP.OBJ. RUNDUP.OBJ allows you to modify certain binary load files, so that upon ec}xit, instead of re-loading DUP.SYS, they will jump directly to the DUP.SYS menu. RUNDUP.OBJ does no checking to see if an uncd}orrupted copy of DUP exists in RAM, so be careful! Full documentation is included in the program. checking to see if an uncc00 BLV8hhՠԐJ ȱԝHȱԝIȱԝBȱԝDȱԝEeԨeHH Vhh`@I@ȍI@ӈ@@;"f}A3X3L3O3N3I@@ȍό@Iψ@@`lt4urxy0 V80al40Zl40 T4 w4 "g}.T401 l40 T4 T4T44IT4Ud4e`JB V0s JKB V0]d4e4"h}BD4E4H4I V@ 8H9I4D5E B V0SɈЯ B V B V` 14d4d!b V`"i} x4 T012 `kةE  0E 3  044243 04LW30 B V 18阍44"j}46C=T4U1d4eL2&T4Ud4e 51It4u{zr0 V0 0 51L20L3D  8n L3"k}80݂݀.23`݄݄݆݇8~٩֩׭6CשD+ץ8 0 4"l}x4 `l ȩ1ȩ:ȱM@DлUеȩPЮ6CРȩ.ЙȩSВم٠8$PpE Ȣ@ML:3} "m} Setting Up 130XE Ram D3w4isk }D8:D8:DUP.SYSD1:DUP.SYSD8:DUPC.SYSD1:DUPC.SYSD1:RAM"n}DISK:** 1 }D8:D8:DUP.SYSD1:DUP.SYSD8:DUPC.SYSD1:DUPC.SYSD1:RAM / This is a fixed version of the RAMBOOT3 file that's distributed with the official release archive of MYDOS v4.50. The progra&p}m initializes the RAMDISK, copies DUP.SYS and MEM.SAV to it, then finishes by copying any files it finds in a subdirectory na&q}med RAMDISK. Due to a transcription error in the source code, the copy routines work much slower than they should. If you'v&r}e been using this program and have been wondering why it takes so long, then try this one. Rename RMBOOT3A.AUT to AUTORUN.SYS&s} (or whatever you need for a Bootfile name.) Following is the section of code from the original RAMBOOT3.M65 that has been &t}changed: 3540 ;COPY DUP.SYS FROM D1: TO D8: 3550 ; 3560 COPIES LDX #$30 3570 LDA #12 3580 STA ICMD,X 3590 JSR CI&u}OV 3600 JSR CLOSIT 3610 SEC 3620 LDA MEMTOP 3630 SBC #BSS&255 3640 STA BUFLEN 3650 LDA MEMTOP+1 3660&v} SBC #BSS/256 3661 ;bug fix! 3662 ;following was STA BUFLEN 3670 STA BUFLEN+1 Hope you find this useful. >>don l&w}ebow 10/92 SS/256 3661 ;bug fix! 3662 ;following was STA BUFLEN 3670 STA BUFLEN+1 Hope you find this useful. >>don l$